package com.bruce.asurada.service;

import com.bruce.asurada.common.Result;
import com.bruce.asurada.common.dto.*;
import com.bruce.asurada.dto.LoginResponseDto;

public interface SsoClientService {

    /**
     * 用户登录获取授权码
     */
    String getAuthCode(UserLoginDto loginDto) throws Exception;

    /**
     * 获取令牌
     * @param loginDto
     * @return
     */
    TokenDTO getToken(UserLoginDto loginDto,String authCode) throws Exception;


    /**
     * 发送手机验证码
     */
    Result<Void> sendPhoneCode(String phone) ;
    /**
     * 验证码登录
     */
    Result<LoginResponseDto> loginByPhoneAndCode(PhoneCodeLoginDTO loginDto);

    /**
     * 验证令牌
     */
    UserInfoDto verifyToken(String token) throws Exception;

    /**
     * 检查登录状态
     */
    Result<Boolean> checkLoginStatus(String token);

    /**
     * 用户登出
     */
    void logout(TokenDTO tokenDTO) throws Exception;


    /**
     * 刷新令牌
     */
    TokenDTO refreshToken(String refreshToken) throws Exception;


}
